#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=1e5;
typedef long long LL;
inline LL read(){LL x=0,f=1;char ch=getchar();	while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
string p[40]={"#","a","b","c","d","e","f","g","h","i","j","aa","ab","ac","ad",
"ae","af","ag","ah","ai","t","ba","bb","bc","bd","be","bf"
};
///aaa--ka
bool check(char a,char b){
    LL sum=(a-'a'+1)*10+(b-'a'+1);
    if(sum>=11&&sum<20) return true;
    if(sum>=21&&sum<=26) return true;
    else return false;
}
string solve(char a,char b){
    LL num=(a-'a'+1)*10+(b-'a'+1);
    string l="";l+=char('a'+num-1);
    return l;
}
int main(void)
{
  string s;cin>>s;
  string c="";
  for(LL i=0;i<s.size();i++){
    c+=p[(s[i]-'a'+1)];
  }
  if(c!=s){
    cout<<c<<"\n";
    return 0;
  }
  string d="";
  for(LL i=0;i<s.size();i++){
     if(i<s.size()-1&&s[i]==s[i+1]&&s[i]=='a'){
        d+="k";
        i=i+1;
        continue;
     }
     else if(i<s.size()-1&&s[i]==s[i+1]&&s[i]=='b'){
        d+="v";
        i=i+1;
        continue;
     }
     else if( i<s.size()-1&&check(s[i],s[i+1])==true ){
        d+=solve(s[i],s[i+1]);
        i=i+1;
        continue;
     }
     else d+=s[i];
  }
  if(d!=c){
    cout<<d<<"\n";
  }
  else{
    cout<<"-1"<<"\n";
  }
return 0;
}
